package mx.itesm.thirstforrevenge;

import java.util.ArrayList;


import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;


/**
* 
* @author Raúl Oscar Irene Rivas
* @author Juan Carlos Felipe Torres
* @author Victor López
* @author Ivan Haecker
* @version 1.1
* Propiedades con las que cuenta un enemigo.
* 
*/

public class Enemigo {
	private ArrayList<Bitmap> arrayEne;
	private int indice; //El frame actual
	private int movX;
	private int movY;
	private int pruebaX;
	private int pruebaY;
		
	
	/**
	 * Constructor de un Enemigo
	 * @param Resources, int , int 
	 * Se agregan las imágenes en un arreglo para generar sprites
	*/
	public Enemigo(Resources admRecursos,int []ids,int posicionX, int posicionY){ 
		arrayEne = new ArrayList<Bitmap>();
		for(int id:ids){
			Bitmap bm = BitmapFactory.decodeResource(admRecursos, id);
			arrayEne.add(bm);
		}
		indice=0;
		//Aquí se colocan los enemigos...
		movX = posicionX;
		movY = posicionY;
		pruebaX = movX;
		pruebaY = movY;	
	}
	
	/**
	 * Devuelve la coordenada en x de un objeto
	*/
	public int getMovX() {
		return movX;
	}
	
	/**
	 * Modifica la coordenada en x de un objeto.
	*/
	public void setMovX(int movX) {
		this.movX = movX;
	}
	
	/**
	 * Modifica la coordenada en Y de un objeto.
	*/
	public void setMovY(int movY) {
		this.movY = movY;
	}
	
	/**
	 * Devuelve la coordenada en Y de un objeto.
	*/
	public int getMovY() {
		return movY;
	}
	//Para Poder dibujar necesitamos un canvas
	
	/**
	 * Dibuja en pantalla los objetos deseados.
	 * @param Canvas, paint
	*/
	public void onDraw(Canvas canvas, Paint p){
		canvas.drawBitmap(arrayEne.get(indice), movX, movY, p);
	}
	
	//Mueve los muñequitos
	//velocidad con la que se moveran los enemigos
	private int velMovEne = 10;
	
	
	/**
	 * Modifica la velocidad del enemigo.
	 * @param int
	 * necesita un entero a reestablecer.
	*/
	public void setVelMovEne(int velMovEne) {
		this.velMovEne = velMovEne;
	}

	private int velEneSprite = 30;
	
	/**
	 * Va cambiando la imagen dentro del arreglo para crear un efecto de movimiento.
	*/	
	public void nextFrame() throws InterruptedException{
		indice = (indice + 1) % arrayEne.size();
			if(movX >= 0){
				movX -= velMovEne;
				//movY = 150;
				Thread.sleep(velEneSprite);
			}
	}
	
	/**
	 * Destruye el enemigo solicitado.
	*/
	public void destruir(){
		movY = pruebaY;
		movX = pruebaX;
	}
}
